home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume8 / xfont.patch / patch next >
Encoding:
Internet Message Format  |  1990-08-03  |  19.2 KB

  1. Path: uunet!cs.utexas.edu!usc!apple!sun-barr!newstop!sun!uunet.UU.NET
  2. From: sci!jimmc%zax@uunet.UU.NET (Jim McBeath)
  3. Newsgroups: comp.sources.x
  4. Subject: v08i067: xfontsel font list enhancement
  5. Message-ID: <140177@sun.Eng.Sun.COM>
  6. Date: 4 Aug 90 02:24:18 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 604
  9. Approved: argv@sun.com
  10.  
  11. Submitted-by: sci!jimmc%zax@uunet.UU.NET (Jim McBeath)
  12. Posting-number: Volume 8, Issue 67
  13. Archive-name: xfont.patch/patch
  14.  
  15. This small patch to xfontsel provides a list of fonts that match the currently
  16. selected font pattern.  You can select any of these fonts and see what the
  17. sample text looks like with that font, and can select (for pasting into
  18. other windows) that fully qualified font name in addition to the font pattern.
  19.  
  20. Jim McBeath    globes!jimmc@oliveb.olivetti.com
  21. Globetrotter Software, Inc.   (408)741-0489
  22. Saratoga, CA
  23.  
  24. #! /bin/sh
  25. ##  This is a shell archive.  Remove anything before this line, then unpack
  26. ##  it by saving it into a file and typing "sh file".  To overwrite existing
  27. ##  files, type "sh file -c".  You can also feed this as standard input via
  28. ##  unshar, or by typing "sh <file".  If this archive is complete, you will
  29. ##  see the following message at the end:
  30. #        "End of shell archive."
  31. # Contents:  XFontSel.ad.diff xfontsel.c.diff xfontsel.man.diff
  32. # Wrapped by jimmc@ss on Fri Jun  8 11:10:37 1990
  33. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  34. if test -f XFontSel.ad.diff -a "${1}" != "-c" ; then 
  35.   echo shar: Will not over-write existing file \"XFontSel.ad.diff\"
  36. else
  37. echo shar: Extracting \"XFontSel.ad.diff\" \(1902 characters\)
  38. sed "s/^X//" >XFontSel.ad.diff <<'END_OF_XFontSel.ad.diff'
  39. X*** XFontSel.ad    Fri Jun  8 11:06:56 1990
  40. X--- /u2/X11R4/mit/clients/xfontsel/XFontSel.ad    Fri Dec 15 07:53:48 1989
  41. X***************
  42. X*** 2,8 ****
  43. X  !
  44. X  ! app-defaults for XFontSel
  45. X  !
  46. X! ! Copyright 1985, 1986, 1987, 1988, 1989, 1990 by the
  47. X  ! Massachusetts Institute of Technology
  48. X  !
  49. X  ! Permission to use, copy, modify, and distribute this
  50. X--- 2,8 ----
  51. X  !
  52. X  ! app-defaults for XFontSel
  53. X  !
  54. X! ! Copyright 1985, 1986, 1987, 1988, 1989 by the
  55. X  ! Massachusetts Institute of Technology
  56. X  !
  57. X  ! Permission to use, copy, modify, and distribute this
  58. X***************
  59. X*** 20,27 ****
  60. X  ! Author:
  61. X  !    Ralph R. Swick, Digital Equipment Corporation/M.I.T. Project Athena
  62. X  !    one weekend in November, 1989
  63. X- !    Fontlist added by Jim McBeath, Globetrotter Software, Inc.
  64. X- !    one day in May, 1990
  65. X  
  66. X  *appDefaultsVersion:    1
  67. X  
  68. X--- 20,25 ----
  69. X***************
  70. X*** 36,51 ****
  71. X  *quitButton.left:    chainLeft
  72. X  *quitButton.right:    chainLeft
  73. X  
  74. X! *ownButton.Label:    select pattern
  75. X  *ownButton.fromHoriz:    quitButton
  76. X  *ownButton.left:    chainLeft
  77. X  *ownButton.right:    chainLeft
  78. X  
  79. X- *ownSelButton.Label:    select name
  80. X- *ownSelButton.fromHoriz: ownButton
  81. X- *ownSelButton.left:    chainLeft
  82. X- *ownSelButton.right:    chainLeft
  83. X- 
  84. X  *countLabel.BorderWidth: 0
  85. X  *countLabel.Justify:    right
  86. X  *countLabel.Label:    999999 fonts match
  87. X--- 34,44 ----
  88. X  *quitButton.left:    chainLeft
  89. X  *quitButton.right:    chainLeft
  90. X  
  91. X! *ownButton.Label:    select
  92. X  *ownButton.fromHoriz:    quitButton
  93. X  *ownButton.left:    chainLeft
  94. X  *ownButton.right:    chainLeft
  95. X  
  96. X  *countLabel.BorderWidth: 0
  97. X  *countLabel.Justify:    right
  98. X  *countLabel.Label:    999999 fonts match
  99. X***************
  100. X*** 112,121 ****
  101. X  
  102. X  *sampleText*allowResize: true
  103. X  *sampleText*Height:     50
  104. X- 
  105. X- *matchListViewPort.allowHoriz: TRUE
  106. X- *matchListViewPort.allowVert: TRUE
  107. X- *matchListViewPort.height: 200
  108. X- *matchList.height: 200
  109. X- *matchList.defaultColumns: 1
  110. X- *matchList.forceColumns: TRUE
  111. X--- 105,107 ----
  112. END_OF_XFontSel.ad.diff
  113. if test 1902 -ne `wc -c <XFontSel.ad.diff`; then
  114.     echo shar: \"XFontSel.ad.diff\" unpacked with wrong size!
  115. fi
  116. # end of overwriting check
  117. fi
  118. if test -f xfontsel.c.diff -a "${1}" != "-c" ; then 
  119.   echo shar: Will not over-write existing file \"xfontsel.c.diff\"
  120. else
  121. echo shar: Extracting \"xfontsel.c.diff\" \(10095 characters\)
  122. sed "s/^X//" >xfontsel.c.diff <<'END_OF_xfontsel.c.diff'
  123. X*** xfontsel.c    Fri Jun  8 11:05:48 1990
  124. X--- /u2/X11R4/mit/clients/xfontsel/xfontsel.c    Tue Dec 12 11:10:53 1989
  125. X***************
  126. X*** 4,10 ****
  127. X  
  128. X  /*
  129. X  
  130. X! Copyright 1985, 1986, 1987, 1988, 1989, 1990 by the
  131. X  Massachusetts Institute of Technology
  132. X  
  133. X  Permission to use, copy, modify, and distribute this
  134. X--- 4,10 ----
  135. X  
  136. X  /*
  137. X  
  138. X! Copyright 1985, 1986, 1987, 1988, 1989 by the
  139. X  Massachusetts Institute of Technology
  140. X  
  141. X  Permission to use, copy, modify, and distribute this
  142. X***************
  143. X*** 21,28 ****
  144. X  
  145. X  Author:    Ralph R. Swick, DEC/MIT Project Athena
  146. X      one weekend in November, 1989
  147. X-     Fontlist added by Jim McBeath, Globetrotter Software, Inc.
  148. X-     one day in May, 1990
  149. X  */
  150. X  
  151. X  #include <stdio.h>
  152. X--- 21,26 ----
  153. X***************
  154. X*** 34,40 ****
  155. X  #include <X11/Xaw/Cardinals.h>
  156. X  #include <X11/Xaw/Command.h>
  157. X  #include <X11/Xaw/Form.h>
  158. X- #include <X11/Xaw/List.h>
  159. X  #include <X11/Xaw/MenuButton.h>
  160. X  #include <X11/Xaw/Paned.h>
  161. X  #include <X11/Xaw/SimpleMenu.h>
  162. X--- 32,37 ----
  163. X***************
  164. X*** 68,76 ****
  165. X  void EnableOtherValues();
  166. X  void EnableMenu();
  167. X  void SetCurrentFont();
  168. X- void SetCurrentMatchList();
  169. X- void SetSampleTextFont();
  170. X- void SelectSampleTextFont();
  171. X  Boolean IsXLFDFontName();
  172. X  
  173. X  typedef void (*XtProc)();
  174. X--- 65,70 ----
  175. X***************
  176. X*** 137,143 ****
  177. X  
  178. X  typedef struct FontValues FontValues;
  179. X  struct FontValues {
  180. X-     char *name;
  181. X      int value_index[FIELD_COUNT];
  182. X  };
  183. X  
  184. X--- 131,136 ----
  185. X***************
  186. X*** 174,192 ****
  187. X  int matchingFontCount;
  188. X  static Boolean anyDisabled = False;
  189. X  Widget ownButton;
  190. X- Widget ownSelButton;
  191. X  Widget fieldBox;
  192. X  Widget countLabel;
  193. X- Widget matchList;
  194. X  Widget currentFontName;
  195. X  String currentFontNameString;
  196. X- String selectedFontNameString;
  197. X- int selectionFlag;
  198. X  int currentFontNameSize;
  199. X  Widget sampleText;
  200. X  static XFontStruct *sampleFont = NULL;
  201. X  Boolean *fontInSet;
  202. X- String *matchingFontNames;
  203. X  static Choice *choiceList = NULL;
  204. X  int enabledMenuIndex;
  205. X  static Boolean patternFieldSpecified[FIELD_COUNT]; /* = 0 */
  206. X--- 167,180 ----
  207. X***************
  208. X*** 197,204 ****
  209. X      char **argv;
  210. X  {
  211. X      Widget topLevel, pane;
  212. X-     String *l;
  213. X-     Arg args[2];
  214. X  
  215. X      topLevel = XtInitialize( NULL, "XFontSel", options, XtNumber(options),
  216. X                   &argc, argv );
  217. X--- 185,190 ----
  218. X***************
  219. X*** 222,232 ****
  220. X      pane = XtCreateManagedWidget("pane",panedWidgetClass,topLevel,NZ);
  221. X      {
  222. X      Widget commandBox, /* fieldBox, currentFontName,*/ viewPort;
  223. X-     Widget matchListViewPort;
  224. X  
  225. X      commandBox = XtCreateManagedWidget("commandBox",formWidgetClass,pane,NZ);
  226. X      {
  227. X!         Widget quitButton /*, ownButton , ownSelButton , countLabel*/;
  228. X  
  229. X          quitButton =
  230. X          XtCreateManagedWidget("quitButton",commandWidgetClass,commandBox,NZ);
  231. X--- 208,217 ----
  232. X      pane = XtCreateManagedWidget("pane",panedWidgetClass,topLevel,NZ);
  233. X      {
  234. X      Widget commandBox, /* fieldBox, currentFontName,*/ viewPort;
  235. X  
  236. X      commandBox = XtCreateManagedWidget("commandBox",formWidgetClass,pane,NZ);
  237. X      {
  238. X!         Widget quitButton /*, ownButton , countLabel*/;
  239. X  
  240. X          quitButton =
  241. X          XtCreateManagedWidget("quitButton",commandWidgetClass,commandBox,NZ);
  242. X***************
  243. X*** 234,248 ****
  244. X          ownButton =
  245. X          XtCreateManagedWidget("ownButton",toggleWidgetClass,commandBox,NZ);
  246. X  
  247. X-         ownSelButton =
  248. X-         XtCreateManagedWidget("ownSelButton",toggleWidgetClass,commandBox,NZ);
  249. X- 
  250. X          countLabel =
  251. X          XtCreateManagedWidget("countLabel",labelWidgetClass,commandBox,NZ);
  252. X  
  253. X          XtAddCallback(quitButton, XtNcallback, Quit, NULL);
  254. X!         XtAddCallback(ownButton,XtNcallback,OwnSelection,(XtPointer)1);
  255. X!         XtAddCallback(ownSelButton,XtNcallback,OwnSelection,(XtPointer)2);
  256. X      }
  257. X  
  258. X      fieldBox = XtCreateManagedWidget("fieldBox", boxWidgetClass, pane, NZ);
  259. X--- 219,229 ----
  260. X          ownButton =
  261. X          XtCreateManagedWidget("ownButton",toggleWidgetClass,commandBox,NZ);
  262. X  
  263. X          countLabel =
  264. X          XtCreateManagedWidget("countLabel",labelWidgetClass,commandBox,NZ);
  265. X  
  266. X          XtAddCallback(quitButton, XtNcallback, Quit, NULL);
  267. X!         XtAddCallback(ownButton,XtNcallback,OwnSelection,(XtPointer)True);
  268. X      }
  269. X  
  270. X      fieldBox = XtCreateManagedWidget("fieldBox", boxWidgetClass, pane, NZ);
  271. X***************
  272. X*** 290,301 ****
  273. X          XtCreateManagedWidget("sampleText",labelWidgetClass,viewPort,NZ);
  274. X  #endif
  275. X      }
  276. X- 
  277. X-     matchListViewPort = XtCreateManagedWidget("matchListViewPort",
  278. X-                 viewportWidgetClass,pane,NZ);
  279. X-     matchList = XtCreateManagedWidget("matchList",
  280. X-                 listWidgetClass,matchListViewPort,NZ);
  281. X-     XtAddCallback(matchList,XtNcallback,SelectSampleTextFont,(XtPointer)0);
  282. X      }
  283. X      
  284. X      XtRealizeWidget(topLevel);
  285. X--- 271,276 ----
  286. X***************
  287. X*** 415,421 ****
  288. X  
  289. X      fonts = (FontValues*)XtMalloc( numFonts*sizeof(FontValues) );
  290. X      fontInSet = (Boolean*)XtMalloc( numFonts*sizeof(Boolean) );
  291. X-     matchingFontNames = (String *)XtMalloc((numFonts+1)*sizeof(String));
  292. X      for (f = numFonts, b = fontInSet; f; f--, b++) *b = True;
  293. X      for (field = 0; field < FIELD_COUNT; field++) {
  294. X      fieldValues[field] = (FieldValueList*)XtMalloc(sizeof(FieldValueList));
  295. X--- 390,395 ----
  296. X***************
  297. X*** 447,455 ****
  298. X      }
  299. X      parseRec->end = numFonts;
  300. X      ScheduleWork(ParseFontNames,(XtPointer)parseRec,work_priority);
  301. X- #if 0    /* we're using the names in the FontValues struct now */
  302. X      ScheduleWork((XtProc)XFreeFontNames,(XtPointer)fontNames,work_priority);
  303. X- #endif
  304. X      ScheduleWork(XtFree, (XtPointer)parseRec, work_priority);
  305. X      SetParsingFontCount(matchingFontCount);
  306. X      if (AppRes.pattern != defaultPattern) {
  307. X--- 421,427 ----
  308. X***************
  309. X*** 496,502 ****
  310. X          continue;
  311. X      }
  312. X  
  313. X-     fontValues->name = *fontNames;
  314. X      for (f = 0, p = *fontNames++; f < FIELD_COUNT; f++) {
  315. X          char *fieldP;
  316. X  
  317. X--- 468,473 ----
  318. X***************
  319. X*** 610,616 ****
  320. X      SetCurrentFontCount();
  321. X      XtSetSensitive(fieldBox, False);
  322. X      XtSetSensitive(ownButton, False);
  323. X-     XtSetSensitive(ownSelButton, False);
  324. X      if (AppRes.app_defaults_version >= MIN_APP_DEFAULTS_VERSION) {
  325. X  #ifdef USE_TEXT_WIDGET
  326. X      XtUnmapWidget(XtParent(sampleText));
  327. X--- 581,586 ----
  328. X***************
  329. X*** 728,734 ****
  330. X      strcpy( label, "no fonts match" );
  331. X      XtSetArg( args[0], XtNlabel, label );
  332. X      XtSetValues( countLabel, args, ONE );
  333. X-     SetCurrentMatchList();
  334. X  }
  335. X  
  336. X  
  337. X--- 698,703 ----
  338. X***************
  339. X*** 802,813 ****
  340. X      }
  341. X  
  342. X      SetCurrentFontCount();
  343. X-     SetSampleTextFont();
  344. X- }
  345. X  
  346. X! void
  347. X! SetSampleTextFont()
  348. X! {
  349. X  #ifdef USE_TEXT_WIDGET
  350. X      Widget mapWidget = XtParent(sampleText);
  351. X  #else
  352. X--- 771,778 ----
  353. X      }
  354. X  
  355. X      SetCurrentFontCount();
  356. X  
  357. X!     {
  358. X  #ifdef USE_TEXT_WIDGET
  359. X      Widget mapWidget = XtParent(sampleText);
  360. X  #else
  361. X***************
  362. X*** 814,820 ****
  363. X      Widget mapWidget = sampleText;
  364. X  #endif
  365. X      Display *dpy = XtDisplay(mapWidget);
  366. X!     XFontStruct *font = XLoadQueryFont(dpy, selectedFontNameString);
  367. X      if (font == NULL)
  368. X          XtUnmapWidget(mapWidget);
  369. X      else {
  370. X--- 779,785 ----
  371. X      Widget mapWidget = sampleText;
  372. X  #endif
  373. X      Display *dpy = XtDisplay(mapWidget);
  374. X!     XFontStruct *font = XLoadQueryFont(dpy, currentFontNameString);
  375. X      if (font == NULL)
  376. X          XtUnmapWidget(mapWidget);
  377. X      else {
  378. X***************
  379. X*** 824,866 ****
  380. X          XtMapWidget(mapWidget);
  381. X          if (sampleFont) XFreeFont( dpy, sampleFont );
  382. X          sampleFont = font;
  383. X!         OwnSelection( sampleText, (XtPointer)0, (XtPointer)True );
  384. X      }
  385. X      FlushXqueue(dpy);
  386. X  }
  387. X  
  388. X- void
  389. X- SelectSampleTextFont(w,closure,callData)
  390. X- Widget w;
  391. X- XtPointer closure, callData;
  392. X- {
  393. X-     XawListReturnStruct *xlr=(XawListReturnStruct *)callData;
  394. X  
  395. X-     selectedFontNameString = xlr->string;
  396. X-     SetSampleTextFont();
  397. X- }
  398. X- 
  399. X- void
  400. X- SetCurrentMatchList()
  401. X- {
  402. X-     int f,n;
  403. X-     Boolean *b;
  404. X- 
  405. X-     n=0;
  406. X-     if (matchingFontCount) {
  407. X-         for (f=0, b=fontInSet; f<numFonts; f++, b++) {
  408. X-             if (*b) {
  409. X-                 matchingFontNames[n++] = fonts[f].name;
  410. X-             }
  411. X-         }
  412. X-     }
  413. X-     matchingFontNames[n] = (String)0;
  414. X-     XawListChange(matchList,matchingFontNames,n,0,1);
  415. X-     if (n>0)
  416. X-         XawListHighlight(matchList,0);
  417. X-     selectedFontNameString = matchingFontNames[0];
  418. X- }
  419. X- 
  420. X  MarkInvalidFonts( set, val )
  421. X      Boolean *set;
  422. X      FieldValue *val;
  423. X--- 789,801 ----
  424. X          XtMapWidget(mapWidget);
  425. X          if (sampleFont) XFreeFont( dpy, sampleFont );
  426. X          sampleFont = font;
  427. X!         OwnSelection( sampleText, (XtPointer)False, (XtPointer)True );
  428. X      }
  429. X      FlushXqueue(dpy);
  430. X+     }
  431. X  }
  432. X  
  433. X  
  434. X  MarkInvalidFonts( set, val )
  435. X      Boolean *set;
  436. X      FieldValue *val;
  437. X***************
  438. X*** 1072,1079 ****
  439. X  
  440. X      if (*target == XA_STRING) {
  441. X      *type = XA_STRING;
  442. X!     *value = (selectionFlag==2)?
  443. X!             selectedFontNameString:currentFontNameString;
  444. X      *length = strlen(*value);
  445. X      *format = 8;
  446. X      return True;
  447. X--- 1007,1013 ----
  448. X  
  449. X      if (*target == XA_STRING) {
  450. X      *type = XA_STRING;
  451. X!     *value = currentFontNameString;
  452. X      *length = strlen(*value);
  453. X      *format = 8;
  454. X      return True;
  455. X***************
  456. X*** 1114,1122 ****
  457. X      Widget w;
  458. X      XtPointer closure, callData;
  459. X  {
  460. X-     Arg args[1];
  461. X      Time time = XtLastTimestampProcessed(XtDisplay(w));
  462. X!     int primary = (int)closure;
  463. X      Boolean own = (Boolean)callData;
  464. X  
  465. X      if (_XA_PRIMARY_FONT == NULL)
  466. X--- 1048,1055 ----
  467. X      Widget w;
  468. X      XtPointer closure, callData;
  469. X  {
  470. X      Time time = XtLastTimestampProcessed(XtDisplay(w));
  471. X!     Boolean primary = (Boolean)closure;
  472. X      Boolean own = (Boolean)callData;
  473. X  
  474. X      if (_XA_PRIMARY_FONT == NULL)
  475. X***************
  476. X*** 1125,1135 ****
  477. X      if (own) {
  478. X      XtOwnSelection( w, XA_PRIMARY_FONT, time,
  479. X              ConvertSelection, LoseSelection, DoneSelection );
  480. X!     if (primary) {
  481. X!         selectionFlag = primary;
  482. X          XtOwnSelection( w, XA_PRIMARY, time,
  483. X                 ConvertSelection, LoseSelection, DoneSelection );
  484. X-     }
  485. X      if (!XtIsSensitive(currentFontName)) {
  486. X          XtSetSensitive(currentFontName, True);
  487. X      }
  488. X--- 1058,1066 ----
  489. X      if (own) {
  490. X      XtOwnSelection( w, XA_PRIMARY_FONT, time,
  491. X              ConvertSelection, LoseSelection, DoneSelection );
  492. X!     if (primary)
  493. X          XtOwnSelection( w, XA_PRIMARY, time,
  494. X                 ConvertSelection, LoseSelection, DoneSelection );
  495. X      if (!XtIsSensitive(currentFontName)) {
  496. X          XtSetSensitive(currentFontName, True);
  497. X      }
  498. END_OF_xfontsel.c.diff
  499. if test 10095 -ne `wc -c <xfontsel.c.diff`; then
  500.     echo shar: \"xfontsel.c.diff\" unpacked with wrong size!
  501. fi
  502. # end of overwriting check
  503. fi
  504. if test -f xfontsel.man.diff -a "${1}" != "-c" ; then 
  505.   echo shar: Will not over-write existing file \"xfontsel.man.diff\"
  506. else
  507. echo shar: Extracting \"xfontsel.man.diff\" \(4250 characters\)
  508. sed "s/^X//" >xfontsel.man.diff <<'END_OF_xfontsel.man.diff'
  509. X*** xfontsel.man    Fri Jun  8 11:06:01 1990
  510. X--- /u2/X11R4/mit/clients/xfontsel/xfontsel.man    Thu Dec 21 08:09:48 1989
  511. X***************
  512. X*** 42,50 ****
  513. X  font specifier will be written to standard output when the \fIquit\fP
  514. X  button is activated.  Regardless of whether or not \fB-print\fP was
  515. X  specified, the font specifier may be made the PRIMARY (text)
  516. X! selection by activating the \fIselect pattern\fP button,
  517. X! or the selected font may be made the PRIMARY selection by
  518. X! activating the \fIselect name\fP button.
  519. X  .PP
  520. X  The \fB-sample\fP option specifies the sample text to be used to
  521. X  display the selected font, overriding the default.
  522. X--- 42,48 ----
  523. X  font specifier will be written to standard output when the \fIquit\fP
  524. X  button is activated.  Regardless of whether or not \fB-print\fP was
  525. X  specified, the font specifier may be made the PRIMARY (text)
  526. X! selection by activating the \fIselect\fP button.
  527. X  .PP
  528. X  The \fB-sample\fP option specifies the sample text to be used to
  529. X  display the selected font, overriding the default.
  530. X***************
  531. X*** 63,90 ****
  532. X  assert ownership of the PRIMARY_FONT selection.  Other applications
  533. X  (see, e.g., \fIxterm\fP) may then retrieve the selected font specification.
  534. X  .PP
  535. X! When a new font pattern is selected, \fIxfontsel\fP will update the list
  536. X! of full font names in the font list below the sample text.
  537. X! By default, the first font in this list is selected as the current font.
  538. X! By pressing the left pointer button on any font name in the list,
  539. X! you can select that font.
  540. X! In addition to updating the sample text using the new font,
  541. X! \fIxfontsel\fP will set the PRIMARY_FONT selection to the selected font.
  542. X! .PP
  543. X! Clicking the left pointer button in the \fIselect pattern\fP widget will
  544. X! cause the currently selected font pattern to become the PRIMARY text
  545. X  selection as well as the PRIMARY_FONT selection.
  546. X  This then allows you to paste the string into other
  547. X! applications.
  548. X! Similarly, clicking the left pointer button in the \fIselect name\fP
  549. X! widget will cause the currently selected full font name to become the
  550. X! PRIMARY text selection as well as the PRIMARY_FONT selection.
  551. X! The \fBselect pattern\fP or \fPselect name\fP button remains
  552. X  highlighted to remind you of this fact, and de-highlights when
  553. X  some other application takes the PRIMARY selection away.  The
  554. X! \fIselect\fP widgets are toggles; pressing one when it is highlighted
  555. X  will cause \fIxfontsel\fP to release the selection ownership and
  556. X! de-highlight the widget.  Activating one of the \fIselect\fP widgets twice
  557. X  is the only way to cause \fIxfontsel\fP to release the
  558. X  PRIMARY_FONT selection.
  559. X  .PP
  560. X--- 61,76 ----
  561. X  assert ownership of the PRIMARY_FONT selection.  Other applications
  562. X  (see, e.g., \fIxterm\fP) may then retrieve the selected font specification.
  563. X  .PP
  564. X! Clicking the left pointer button in the \fIselect\fP widget will
  565. X! cause the currently selected font name to become the PRIMARY text
  566. X  selection as well as the PRIMARY_FONT selection.
  567. X  This then allows you to paste the string into other
  568. X! applications.  The \fBselect\fP button remains
  569. X  highlighted to remind you of this fact, and de-highlights when
  570. X  some other application takes the PRIMARY selection away.  The
  571. X! \fIselect\fP widget is a toggle; pressing it when it is highlighted
  572. X  will cause \fIxfontsel\fP to release the selection ownership and
  573. X! de-highlight the widget.  Activating the \fIselect\fP widget twice
  574. X  is the only way to cause \fIxfontsel\fP to release the
  575. X  PRIMARY_FONT selection.
  576. X  .PP
  577. X***************
  578. X*** 160,170 ****
  579. X  to stderr but otherwise nothing bad (or good) happens.
  580. X  .PP
  581. X  .SH COPYRIGHT
  582. X! Copyright 1989, 1990 by the Massachusetts Institute of Technology.
  583. X  .br
  584. X  See \fIX(1)\fP for a full statement of rights and permissions.
  585. X  .SH AUTHOR
  586. X  .PP
  587. X! Ralph R. Swick, Digital Equipment Corporation/MIT Project Athena.
  588. X! .br
  589. X! Fontlist added by Jim McBeath, Globetrotter Software Inc.
  590. X--- 146,156 ----
  591. X  to stderr but otherwise nothing bad (or good) happens.
  592. X  .PP
  593. X  .SH COPYRIGHT
  594. X! Copyright 1989 by the Massachusetts Institute of Technology
  595. X  .br
  596. X  See \fIX(1)\fP for a full statement of rights and permissions.
  597. X  .SH AUTHOR
  598. X  .PP
  599. X! Ralph R. Swick, Digital Equipment Corporation/MIT Project Athena
  600. X! 
  601. X! 
  602. END_OF_xfontsel.man.diff
  603. if test 4250 -ne `wc -c <xfontsel.man.diff`; then
  604.     echo shar: \"xfontsel.man.diff\" unpacked with wrong size!
  605. fi
  606. # end of overwriting check
  607. fi
  608. echo shar: End of shell archive.
  609. exit 0
  610.  
  611. dan
  612. ----------------------------------------------------
  613. O'Reilly && Associates   argv@sun.com / argv@ora.com
  614. Opinions expressed reflect those of the author only.
  615.